package org.liquidByte.trafficMustang.androidApp.listview.adapter;

import org.liquidByte.trafficMustang.R;
import org.liquidByte.trafficMustang.androidApp.listview.row.DeslocamentoRow;
import org.liquidByte.trafficMustang.androidApp.listview.row.ListViewRow;
import org.liquidByte.trafficMustang.androidApp.listview.row.RowActionListener;
import org.liquidByte.trafficMustang.androidApp.services.dto.DeslocamentoDTO;

import android.content.Context;
import android.view.View;

public class DeslocamentoRowAdapter extends RowAdapter<DeslocamentoDTO> {

	private RowActionListener<DeslocamentoRow> finalizarActionListener;
	private RowActionListener<DeslocamentoRow> cancelarActionListener;
	
	public DeslocamentoRowAdapter(Context ctx) {
		super(ctx);
	}

	@Override
	protected int getViewResource() {
		return R.layout.listview_row_deslocamento;
	}

	@Override
	public long getItemId(int position) {
		DeslocamentoDTO deslocamento = (DeslocamentoDTO) this.getItem(position);
		if (deslocamento == null) {
			return 0;
		} else {
			return deslocamento.getId();
		}
	}
	
	public void setFinalizarActionListener(
			RowActionListener<DeslocamentoRow> finalizarActionListener) {
		this.finalizarActionListener = finalizarActionListener;
	}

	public void setCancelarActionListener(
			RowActionListener<DeslocamentoRow> cancelarActionListener) {
		this.cancelarActionListener = cancelarActionListener;
	}

	@Override
	protected ListViewRow createRow(View view) {
		DeslocamentoRow row = new DeslocamentoRow(this, view);
		row.setCancelarActionListener(new RowActionListener<DeslocamentoRow>() {
			@Override
			public void actionPerformed(DeslocamentoRow row) {
				DeslocamentoRowAdapter adapter = DeslocamentoRowAdapter.this;
				if (adapter.cancelarActionListener != null) {
					adapter.cancelarActionListener.actionPerformed(row);
				}				
			}
		});
		row.setFinalizarActionListener(new RowActionListener<DeslocamentoRow>() {
			@Override
			public void actionPerformed(DeslocamentoRow row) {
				DeslocamentoRowAdapter adapter = DeslocamentoRowAdapter.this;
				if (adapter.finalizarActionListener != null) {
					adapter.finalizarActionListener.actionPerformed(row);
				}
			}
		});
		return row;
	}
}
